package com.bugpool.leilema.freamwork.satoken;

import cn.dev33.satoken.stp.StpUtil;
import com.bugpool.leilema.tc.bean.entity.SysUser;
import com.bugpool.leilema.tc.bean.interfaces.UserConvert;
import com.bugpool.leilema.tc.bean.vo.SysUserVo;
import org.springframework.beans.BeanUtils;

/**
 * 封装 Sa-Token 常用操作
 *
 * @author wh
 */
public class SaTokenUtil {


    public final static String USER_KEY = "user";

    public final static String LOGIN_IP = "login_ip";

    /**
     * 获取登录用户model
     */
    public static SysUserVo getUser() {

        Object object = StpUtil.getSession().get(USER_KEY);
        if (object != null) {
           return (SysUserVo) object;
        }
        return null;
    }

    /**
     * set用户
     */
    public static void setUser(SysUserVo user) {
        StpUtil.getSession().set(USER_KEY, user);
    }

    /**
     * 获取登录用户id
     */
    public static String getUserId() {
        return StpUtil.getLoginIdAsString();
    }

    /**
     * 获取登录用户name
     */
    public static String getLoginName() {
        SysUserVo tsysUser = getUser();
        if (tsysUser == null) {
            throw new RuntimeException("用户不存在！");
        }
        return tsysUser.getNickName();
    }

    /**
     * 获取登录用户ip
     *
     * @return
     * @author fuce
     * @Date 2019年11月21日 上午9:58:26
     */
    public static String getIp() {
        return StpUtil.getTokenSession().getString(LOGIN_IP);
    }

    /**
     * 判断是否登录
     *
     * @return
     * @author fuce
     * @Date 2019年11月21日 上午9:58:26
     */
    public static boolean isLogin() {
        return StpUtil.isLogin();
    }

}
